package com.kangyi.utils;

import com.kangyi.context.BaseContext;
import lombok.extern.slf4j.Slf4j;

/**
 * @author Blank
 * @version 1.0
 */
@Slf4j
public class AuthUtil {

    /**
     * 校验当前登录用户是否有权限操作目标用户
     *
     * @param targetUserId 目标用户ID（需要执行操作的用户ID）
     * @return true 表示权限通过，false 表示无权限
     */
    public static boolean checkUserPermission(Integer targetUserId) {
        Integer currentUserId = BaseContext.getCurrentId(); // 获取 Token 里的 userId
        log.info("当前登录用户 ID: {}", currentUserId);
        log.info("目标用户 ID: {}", targetUserId);

        // 校验 Token 里的 userId 是否与请求中的 userId 一致
        if (currentUserId == null || !currentUserId.equals(targetUserId)) {
            log.warn("用户 ID 不匹配，拒绝操作！");
            return false;
        }
        return true;
    }

    /**
     * 校验当前登录用户是否有权限操作目标用户，不通过直接抛异常
     *
     * @param targetUserId 目标用户ID
     */
    public static void validateUserPermission(Integer targetUserId) {
        if (!checkUserPermission(targetUserId)) {
            throw new RuntimeException("非法操作：不能操作其他用户的数据！");
        }
    }


}
